﻿using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO;
using ebDoc = eRechnung_3_0.Globals;


namespace eRechnung_3_0
{
    public partial class FrmConfirm : Form
    {
        public string strReNr;
        public string strReDatum;
        public string strReSteller;
        public string strReEmpfaenger;
        public string strAnzPos;
        public string strGesBetrag;
        public string strSignator;
        public string strZertIssuer;
        public string strLocalFilename;
        public bool bSaveLocal;
        public string strEMailAddress;
        public bool bSendMail;
        public string strEtresorAddress;
        public bool bSendEtresor;

        public FrmConfirm()
        {
            InitializeComponent();
        }


        private void FrmConfirm_Load(object sender, EventArgs e)
        {
           
            tbxAnzPos.Text = strAnzPos;
            tbxEMailAddress.Text = strEMailAddress;
            cbxSendMail.Checked = bSendMail;
            tbxEmpfaenger.Text = strReEmpfaenger;
            tbxEtresorAddress.Text = strEtresorAddress;
            cbxeTresor.Checked = bSendEtresor;
            tbxGesamtBetrag.Text = strGesBetrag;
            tbxLocalFile.Text = strLocalFilename;
            cbxSaveLocal.Checked = bSaveLocal;
            tbxRechngSteller.Text = strReSteller;
            tbxReNr.Text = strReNr;
            tbxReDatum.Text = strReDatum;
            tbxSignator.Text = strSignator;
            tbxZertIssuer.Text = strZertIssuer;
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            if (cbxeTresor.Checked==true)
            {
                if (tbxEtresorAddress.Text == "")
                {
                    MessageBox.Show("e-tresor Mailbox nicht angegeben.", "Signatur Bestätigung", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;

                }
                else
                {
                    string etresorMail = tbxEtresorAddress.Text + "@e-tresor.at";
                    if (ebDoc.ThisDocument.TestEmailRegex(etresorMail) != true)
                    {
                        MessageBox.Show("e-tresor E-Mail Adresse ungültig.");
                        return;
                    }

                }
            }
            if ((cbxSaveLocal.Checked==true))
            {
                if (tbxLocalFile.Text == "")
                {
                    MessageBox.Show("Dateiname nicht angegeben.", "Signatur Bestätigung", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    if (ebDoc.ThisDocument.TestEmailRegex(tbxEMailAddress.Text) != true)
                    {
                        MessageBox.Show("Empfänger E-Mail Adresse ungültig.");
                        return;
                    }

                }
            }
            if ((cbxSendMail.Checked==true)&&(tbxEMailAddress.Text==""))
            {
                MessageBox.Show("E-Mail Adresse des Rechnungsempfängers nicht angegeben.", "Signatur Bestätigung", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            
            if (File.Exists(tbxLocalFile.Text) == true)
            {
               DialogResult rc = MessageBox.Show("Die Datei "+tbxLocalFile.Text+" existiert bereits.\r\nSoll die Datei überschrieben werden?", "ebInterface Rechnung speichern", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
               if (rc!=DialogResult.Yes)
               {
                   return;
               }
            }

            if ((cbxSaveLocal.Checked!=true)&&(cbxSendMail.Checked!=true))
            {
                MessageBox.Show("Weder lokal speichern noch versenden gewählt.");
                return;
            }


            bSendEtresor = cbxeTresor.Checked;
            if (bSendEtresor == true)
            {
                strEtresorAddress = tbxEtresorAddress.Text;
            }
            else
            {
                strEtresorAddress = "";
            }
            bSendMail = cbxSendMail.Checked;
            if (bSendMail == true)
            {
                strEMailAddress = tbxEMailAddress.Text;

            }
            else
            {
                strEMailAddress = "";
            }
            bSaveLocal = cbxSaveLocal.Checked;
            strLocalFilename = tbxLocalFile.Text;
            this.DialogResult = DialogResult.OK;
            this.Close();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
           DialogResult rc = MessageBox.Show("Soll die signierte Rechnung verworfen werden?", "Signatur Bestätigung", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
           if (rc==DialogResult.No)
           {
               return;
           }

            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        private void btnGetFilename_Click(object sender, EventArgs e)
        {
            if (tbxLocalFile.Text!="")
            {
                sFDLocalFile.FileName = Path.GetFileName(tbxLocalFile.Text);
                sFDLocalFile.InitialDirectory = Path.GetDirectoryName(tbxLocalFile.Text);                
            }
           DialogResult rc = sFDLocalFile.ShowDialog();
           if (rc==DialogResult.OK)
           {
               tbxLocalFile.Text = sFDLocalFile.FileName;
               cbxSaveLocal.Checked = true;
           }
        }

        private void tbxEtresorAddress_Validating(object sender, CancelEventArgs e)
        {
            string email =  tbxEtresorAddress.Text + "@e-tresor.at";
            if (ebDoc.ThisDocument.TestEmailRegex(email) != true)
            {
                MessageBox.Show("e-tresor: Ungültige E-Mail Adresse");
                e.Cancel = true;
                return;
            }
            e.Cancel = false;
            return;
        }


    }
}
